package com.neu.dao.impl;

import com.neu.dao.BaseDao;
import com.neu.dao.TradeDao;

import java.util.List;
import java.util.Map;

public class TradeDaoImpl extends BaseDao implements TradeDao {

    /**
     * 添加账本信息
     * @param trade_code 交易码TRADE_CODE（1存 2取 3代收代扣 4代发工资 5手续费）
     * @param trade_date 交易日期
     * @param amount     交易金额
     * @param trade_client_no 所属交易人编号
     * @return
     */
    @Override
    public int insertTrade(String trade_code, String trade_date, String amount, String trade_client_no) {
        int row = 0;
        String sql = "insert into t_trade(trade_code,trade_date,amout,trade_client_no) " +
                "values(?,?,?,?)";
        row = executeUpdate(sql,trade_code,trade_date,amount,trade_client_no);
        return row;
    }

    /**
     * 修改账本信息
     * @param trade_no 根据账本编号修改
     * @param amount   交易金额
     * @param trade_date 交易日期
     * @param trade_code 交易码TRADE_CODE（1存 2取 3代收代扣 4代发工资 5手续费）
     * @return
     */
    @Override
    public int updateTrade(String trade_no, String amount, String trade_date, String trade_code) {
        int row = 0;
        String sql = "update t_trade set amount = ?,trade_date = ?,trade_code = ? where trade_no = ?";
        row = executeUpdate(sql,amount,trade_date,trade_code,trade_no);
        return row;
    }

    /**
     * 根据用户编号与交易日期查询该用户账本信息
     * @param trdae_client_no 用户编号
     * @param trade_dateBegin 交易日期1
     * @param trade_dateEnd   交易日期2
     * @return
     */
    @Override
    public List<Map<String, Object>> exqueryTradeByDate(String trdae_client_no, String trade_dateBegin,String trade_dateEnd) {
        List<Map<String,Object>> list = null;
        String sql = "select trade_no,trade_code,trade_date,amount" +
                " from t_trade where trade_status = 1 and trade_client_no = ? and trade_date BETWEEN ? and ?";
        list = excuteQuery(sql,trdae_client_no,trade_dateBegin,trade_dateEnd);
        return list;
    }

    /**
     * 根据用户编号查询该用户所有账本信息
     * @param trade_client_no 用户编号
     * @return
     */
    @Override
    public List<Map<String, Object>> exqueryTrade(String trade_client_no) {
        List<Map<String,Object>> list = null;
        String sql = "select trade_no,trade_code,trade_date,amount" +
                " from t_trade where trade_client_no = ? and trade_status = 1";
        list = excuteQuery(sql,trade_client_no);
        return list;
    }

    /**
     * 根据账本信息编号删除账本信息
     * @param trade_no 账本信息编号
     * @return
     */
    @Override
    public int deleteTradeByNo(String trade_no) {
        int row = 0;
        String sql = "update t_trade set trade_status = 0 where trade_no = ?";
        row = executeUpdate(sql,trade_no);
        return row;
    }
}
